package com.huike.eventbus;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

import androidx.appcompat.app.AppCompatActivity;

/**
 * eventbus:介绍
 * 可以更灵活的在activity fragment 之间传送数据  必学
 *
 * eventbus 通讯使用demo
 *
 * 普通事件与粘性事件区别
 *
 * 普通事件：先注册在使用
 * 粘性事件：先使用在注册
 *
 * 多用粘性事件 可以防止得不到数据的情况
 *
 */
public class MainActivity extends AppCompatActivity {

    private Button mButMainCommon;
    private Button mButMainStick;
    private TextView mTvMainShow;
    private Boolean isEventBus = true;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        注册EventBus
        EventBus.getDefault().register(this);

        mButMainCommon = (Button) findViewById(R.id.but_main_common);
        mButMainStick = (Button) findViewById(R.id.but_main_stick);
        mTvMainShow = (TextView) findViewById(R.id.tv_main_show);

        //跳转界面
        mButMainCommon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,NextActivity.class));
            }
        });

//        粘性事件
        mButMainStick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //    粘性事件
                if(isEventBus){
                    isEventBus = false;
                    EventBus.getDefault().unregister(this);
                }


            }
        });

    }




   @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageEvent(Beas beas){
        mTvMainShow.setText(beas.getName());
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        EventBus.getDefault().unregister(this);

    }
}
